{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 自由市场模型\n",
    "\n",
    "经济学中最简单的模型就是自由市场中的供给-需求模型。它满足以下的供给曲线和需求曲线：\n",
    "\n",
    "线性需求曲线 $ Q = a_d - b_d p $\n",
    "\n",
    "线性供给曲线 $ Q = a_z + b_z (p - \\text{tax}) $\n",
    "\n",
    "其中$Q$是数量，$p$是价格，其他的都是参数，这里包含了向企业收税的情况。\n",
    "\n",
    "你的老板JL给你提出了以下要求：\n",
    "\n",
    "1. 要求你建立一个名为`Market`的python类 (class)。这个class就代表着一个市场。市场拥有的属性是 $a_d, b_d, a_z, b_z, \\text{tax}$。当给这些参数赋值之后，你就设计出了一个市场。\n",
    "\n",
    "2. 请建立一个市场，它的参数分别为$a_d = 15, b_d=0.5, a_z=-2, b_z=0.5, \\text{tax}=3$. 这个市场命名为`free_m`。\n",
    "\n",
    "\n",
    "3. 要求能通过`free_m.price()`计算出该市场的均衡价格。\n",
    "\n",
    "\n",
    "4. 要求能通过`free_m.quantity()`计算出该市场的均衡数量。\n",
    "\n",
    "\n",
    "5. 要求能通过`free_m.tax_revenue()`计算出在均衡情况下的总税收。\n",
    "\n",
    "\n",
    "6. 要求能通过`free_m.consumer_surplus()`计算出在均衡情况下的消费者剩余。同样，通过`free_m.producer_surplus()`计算出在均衡情况下的生产者剩余。\n",
    "\n",
    "\n",
    "7. 要求能通过`free_m.demand(p)`计算出价格为`p`时的需求为多少。\n",
    "\n",
    "\n",
    "8. 要求能通过`free_m.supply(p)`计算出价格为`p`时的供给为多少。\n",
    "\n",
    "\n",
    "9. 要求能通过`free_m.supply_no_tax(p)`计算出不收税情况下、价格为`p`时的供给为多少。\n",
    "\n",
    "\n",
    "10. 根据上面设计好的函数，画出收税与不收税时的需求-供给曲线。（坐标轴、legend什么的都要有）\n",
    "\n",
    "\n",
    "注：计算surplus需要积分，可以查`scipy`如何进行积分操作。Good luck!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "https://python.quantecon.org/python_oop.html#Example:-A-Market"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy.integrate import quad\n",
    "\n",
    "class Market:\n",
    "\n",
    "    def __init__(self, ad, bd, az, bz, tax):\n",
    "        \"\"\"\n",
    "        Set up market parameters.  All parameters are scalars.  See\n",
    "        https://lectures.quantecon.org/py/python_oop.html for interpretation.\n",
    "\n",
    "        \"\"\"\n",
    "        self.ad, self.bd, self.az, self.bz, self.tax = ad, bd, az, bz, tax\n",
    "        if ad < az:\n",
    "            raise ValueError('Insufficient demand.')\n",
    "\n",
    "    def price(self):\n",
    "        \"Return equilibrium price\"\n",
    "        return  (self.ad - self.az + self.bz * self.tax) / (self.bd + self.bz)\n",
    "\n",
    "    def quantity(self):\n",
    "        \"Compute equilibrium quantity\"\n",
    "        return  self.ad - self.bd * self.price()\n",
    "\n",
    "    def consumer_surplus(self):\n",
    "        \"Compute consumer surplus\"\n",
    "        # == Compute area under inverse demand function == #\n",
    "        integrand = lambda x: (self.ad / self.bd) - (1 / self.bd) * x\n",
    "        area, error = quad(integrand, 0, self.quantity())\n",
    "        return area - self.price() * self.quantity()\n",
    "\n",
    "    def producer_surplus(self):\n",
    "        \"Compute producer surplus\"\n",
    "        #  == Compute area above inverse supply curve, excluding tax == #\n",
    "        integrand = lambda x: -(self.az / self.bz) + (1 / self.bz) * x\n",
    "        area, error = quad(integrand, 0, self.quantity())\n",
    "        return (self.price() - self.tax) * self.quantity() - area\n",
    "\n",
    "    def tax_revenue(self):\n",
    "        \"Compute tax revenue\"\n",
    "        return self.tax * self.quantity()\n",
    "\n",
    "    def demand(self, x):\n",
    "        \"Compute inverse demand\"\n",
    "        return self.ad / self.bd - (1 / self.bd) * x\n",
    "\n",
    "    def supply(self, x):\n",
    "        \"Compute inverse supply curve\"\n",
    "        return -(self.az / self.bz) + (1 / self.bz) * x + self.tax\n",
    "\n",
    "    def supply_no_tax(self, x):\n",
    "        \"Compute inverse supply curve without tax\"\n",
    "        return -(self.az / self.bz) + (1 / self.bz) * x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "equilibrium price =  18.5\n",
      "consumer surplus =  33.0625\n"
     ]
    }
   ],
   "source": [
    "baseline_params = 15, .5, -2, .5, 3\n",
    "free_m = Market(*baseline_params)\n",
    "\n",
    "print(\"equilibrium price = \", free_m.price())\n",
    "print(\"consumer surplus = \", free_m.consumer_surplus())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.rc('font', size=15)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "q_max = free_m.quantity() * 2\n",
    "q_grid = np.linspace(0.0, q_max, 100)\n",
    "pd = free_m.demand(q_grid)\n",
    "ps = free_m.supply(q_grid)\n",
    "psno = free_m.supply_no_tax(q_grid)\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(8, 6))\n",
    "\n",
    "ax.plot(q_grid, pd, lw=2, alpha=0.6, label='demand')\n",
    "ax.plot(q_grid, ps, lw=2, alpha=0.6, label='supply')\n",
    "ax.plot(q_grid, psno, '--k', lw=2, alpha=0.6, label='supply without tax')\n",
    "ax.set_xlabel('quantity')\n",
    "ax.set_xlim(0, q_max)\n",
    "ax.set_ylabel('price')\n",
    "ax.legend(loc='lower right', frameon=False, fontsize=14)\n",
    "\n",
    "ax.tick_params(direction='in')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
